package com.zy.controller;

import cn.dev33.satoken.stp.StpUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @BelongsProject: SmartBidAI
 * @BelongsPackage: com.zy.controller
 * @Author: zhangyan
 * @CreateTime: 2025-09-03  19:34
 * @Description: 用户控制器，处理用户登录等功能
 * @Version: 1.0
 */
@Controller
public class UserController {
    
    /**
     * 显示登录页面
     * @return 登录页面模板名称
     */
    @GetMapping("/login")
    public String showLoginPage() {
        return "login";
    }
    
    /**
     * 处理登录请求
     * @param username 用户名
     * @param password 密码
     * @return 登录成功后重定向到聊天页面，失败则返回登录页面
     */
    @PostMapping("/login")
    public String processLogin(@RequestParam("username") String username, 
                              @RequestParam("password") String password) {
        // 这里简单示例，实际应用中应该查询数据库验证用户
        if ("admin".equals(username) && "123456".equals(password)) {
            // 登录成功，使用Sa-Token记录登录状态
            StpUtil.login(username);
            return "redirect:/chat";
        } else {
            // 登录失败
            return "redirect:/login?error";
        }
    }
    
    /**
     * 处理根路径请求，重定向到登录页面
     * @return 重定向到登录页面
     */
    @GetMapping("/")
    public String redirectToLogin() {
        return "redirect:/login";
    }
    
    /**
     * 处理登出请求
     * @return 重定向到带登出参数的登录页面
     */
    @GetMapping("/logout")
    public String logout() {
        // 登出当前会话
        StpUtil.logout();
        return "redirect:/login?logout";
    }
}
